package entity

import "time"
//菜单结构体
type Menu struct {
	MenuId int64 		`xorm:"pk autoincr bigint(20)" form:"" json:"menuId"`
	MenuName string		`xorm:"varchar(50)" form:"menuName" json:"menuName"`
	ParentId int64		`xorm:"bigint(20)" form:"parentId" json:"parentId"`
	OrderNum int		`xorm:"int(4)" form:"orderNum" json:"orderNum"`
	Path string			`xorm:"varchar(200)" form:"path" json:"path"`
	Component string	`xorm:"varchar(255)" form:"component" json:"component"`
	IsFrame string		`xorm:"int(4)" form:"isFrame" json:"isFrame"`
	MenuType string		`xorm:"char(1)" form:"menuType" json:"menuType"`
	Visible string		`xorm:"char(1)" form:"visible"json:"visible"`
	Perms string		`xorm:"varchar(100)" form:"perms" json:"perms"`
	Icon string			`xorm:"varchar(100)" form:"icon" json:"icon"`
	CreateBy string		`xorm:"varchar(64)" form:"createBy" json:"createBy"`
	CreateTime time.Time`xorm:"datetime" form:"createTime" json:"createTime"`
	UpdateBy string		`xorm:"varchar(64)" form:"updateBy" json:"updateBy"`
	UpdateTime time.Time`xorm:"datetime" form:"updateTime" json:"updateTime"`
	Remark string		`xorm:"varchar(500)" form:"remark" json:"remark"`
	Children []Menu		`xorm:"-"json:"children,omitempty"`
}
//路由配置结构体
type RouterVo struct {
	Name string `json:"name"` //路由名字
	Path string `json:"path"` //路由地址
	Hidden bool `json:"hidden"` //是否隐藏路由，当设置 true 的时候该路由不会再侧边栏出现
	//注意json后跟omitempty 这个代表当前值为空的时候json中不显示
	Redirect string `json:"redirect,omitempty"`//重定向地址，当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
	Component string `json:"component"`//组件地址
	AlwaysShow bool `json:"alwaysShow"`//当你一个路由下面的 children 声明的路由大于1个时，自动会变成嵌套的模式--如组件页面
	Meta MetaVo	  `json:"meta"`//其他元素
	Children []RouterVo	`json:"children,omitempty"`//子路由
}

//路由显示信息结构体
type MetaVo struct {
	Title string	`json:"title"`//设置该路由在侧边栏和面包屑种展示的名字
	Icon  string	`json:"icon"`//设置该路由的图标，	对应路径src/icons/svg
}